const time = require('../../utils/time.js')
const db = wx.cloud.database();
const app = getApp();

const maxCount = 1
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tempFilePaths: [],
    imageCunt: 0,
    title: '',
    content: '',
    value: '',
    TabCur: 0,
    is_loading: false,

    type: '', // 发表动态的类型  有 校园动态、通知公告、失物招领、表白墙
    location_type: '', // 到时更新的是哪个宿舍区的表中的数据
    love_type: '', // 到时更新的是实名贴还是匿名贴的表中的数据
    name: '', // 失物招领的 物品名称
    location: '', // 失物招领的 丢失地点
    contact: '', // 失物招领的 联系方式
    lovename: '', // 表白墙的 心仪对象
    say: '', // 表白墙的 心里话
    imageUrl: '', // 图片的云存储地址，后面会 由本地路径转为云存储地址的过程
    timeNow: time.formatTime_year_month_day(new Date()) // 现在的时间
  },

  // 点击输入框的疑问图标
  onClickIcon() {
    wx.showToast({
      title: '注明微信or手机',
      icon: 'none'
    })
  },

  // 失物招领 物品名称
  onChange_name(event) {
    this.data.name = event.detail;
  },
  // 失物招领 位置地点
  onChange_location(event) {
    this.data.location = event.detail;
  },
  // 失物招领 联系方式
  onChange_contact(event) {
    this.data.contact = event.detail;
  },
  // 表白墙 心仪对象
  onChange_lovename(event) {
    this.data.lovename = event.detail;
  },
  // 表白墙 心里话
  onChange_say(event) {
    this.data.say = event.detail;
  },


  previewImage(ev) {
    //查看对应的图片
    const id = ev.target.dataset.id;
    wx.previewImage({
      current: this.data.tempFilePaths[id],
      urls: [this.data.tempFilePaths[id]]
    })
  },

  toDelete(ev) {
    const id = ev.target.dataset.id;
    // 删除数组中对应index的元素，会改变原数组,修改的是tempFilePaths里面的元素,tempFilePaths本身引用没有改变，页面没有监听到
    // const tempFilePath = this.data.tempFilePaths.splice(index, 1);
    //过滤生成一个新的数组
    const tempFilePaths = this.data.tempFilePaths.filter((item, index) => {
      return index != id
    })
    this.setData({
      imageCunt: this.data.imageCunt - 1,
      tempFilePaths
    })
  },

  addImage() {
    const rest = maxCount - this.data.imageCunt
    wx.chooseImage({
      count: maxCount,
      sizeType: ['compressed'],
      sourceType: ['album'],
      success: (res) => {
        // console.log(res);
        const tempFilePaths = res.tempFilePaths;
        console.log(this.data.tempFilePaths);
        this.setData({
          tempFilePaths
        })
        console.log(this.data.tempFilePaths);
      }
    })
  },

  // 将文本域内容 赋值到value上
  setContent(e) {
    this.data.value = e.detail.value;
  },

  // 回到 发现 即校园圈页面
  go() {
    var that = this;
    //判断不能为空
    const { type, value } = this.data;
    console.log(value);

    this.setData({
      is_loading: true
    });

    if (value !== '') {
      // 对于校园动态来说，如果value值不为空就行了
      // 向校园动态的集合中 新加一个记录
      console.log('准备更新数据库');
      let database = '';
      if (this.data.type === '校园动态') {
        database = 'schoolDynamic'
      } else {
        database = 'notice'
      }

      db.collection(database).add({
        data: {
          avatarUrl: app.globalData.user_data.avatarUrl,
          nickName: app.globalData.user_data.nickName,
          time: time.formatTime_year_month_day(new Date()),
          comment: value,
          view_num: 1,
          star_num: 0,
          comment_num: 0,
          is_star: false
        }
      })
        .then(res => {
          console.log(res);
          this.setData({
            is_loading: false
          });
          console.log('数据库的集合已更新');
          wx.navigateBack({
            delta: 1
          })

        })

    } else {
      wx.showModal({
        title: `文字内容不能为空`
      });
      this.setData({
        is_loading: false
      });

    }

    //微信绿色内容接口
    // if (!imageCunt && content !== '') {
    //   //图为空
    //   wxGreenCheck.wxTextCheck(content).then(res => {
    //     var fileIDs = [];
    //     that.changeDb(fileIDs, new Date().getTime());
    //   })
    // } else {
    //   const index = new Date().getTime()
    //   that.uploadFile(index)
    // }


  },

  uploadFile() {
    return new Promise(resolve => {
      const that = this;
      const { location_type, tempFilePaths } = this.data;

      let where = '';

      if (location_type === '泰山区') {
        where = 'taiShan'
      } else if (location_type === '黑山区') {
        where = 'heiShan'
      } else if (location_type === '华山区') {
        where = 'huaShan'
      } else if (location_type === '启林区') {
        where = 'qilin'
      } else if (location_type === '嵩山区') {
        where = 'songShan'
      } else if (location_type === '燕山区') {
        where = 'yanShan'
      } else {
        wx.showToast({
          title: '未知错误',
          icon: 'error'
        })
      }

      // 开始上传文件
      // 图片路径
      console.log(tempFilePaths[0]);
      const url = 'lost/' + where + '/' + tempFilePaths[0].split('/')[3];
      console.log(url);

      wx.cloud.uploadFile({
        cloudPath: url, // 上传至云端的路径
        filePath: tempFilePaths[0], // 小程序临时文件路径
        success: res => {
          console.log(res.fileID);
          that.data.imageUrl = res.fileID;
          resolve(that.data.imageUrl);
        },
        fail: console.error
      })
    })


  },

  // 回到 失物招领页面，涉及到异步，才要async(图片上传)
  async go_lost() {
    var that = this;

    const { type, location_type, name, location, contact, tempFilePaths, imageUrl } = this.data;

    this.setData({
      is_loading: true
    });

    //判断不能为空，对于失物招领来说，得名称、地点、联系、图片都有
    if (name !== '' && location !== '' && contact !== '' && tempFilePaths.length !== 0) {
      console.log('准备更新数据库');
      let database = '';
      if (location_type === '泰山区') {
        database = 'taiShan'
      } else if (location_type === '黑山区') {
        database = 'heiShan'
      } else if (location_type === '华山区') {
        database = 'huaShan'
      } else if (location_type === '启林区') {
        database = 'qilin'
      } else if (location_type === '嵩山区') {
        database = 'songShan'
      } else if (location_type === '燕山区') {
        database = 'yanShan'
      } else {
        wx.showToast({
          title: '未知错误',
          icon: 'error'
        })
      }

      this.uploadFile()
        .then(res => {

          db.collection(database).add({
            data: {
              avatarUrl: app.globalData.user_data.avatarUrl,
              nickName: app.globalData.user_data.nickName,
              time: time.formatTime_year_month_day(new Date()),
              imageUrl: res,
              name,
              location,
              contact
            }
          })
            .then(res => {
              console.log(res);
              this.setData({
                is_loading: false
              });
              console.log('数据库的集合已更新');
              wx.navigateBack({
                delta: 1
              })

            })

        })


    } else {
      wx.showModal({
        title: '请填写所有内容'
      });
      this.setData({
        is_loading: false
      });

    }

  },

  // 回到 表白墙页面
  go_lovewall() {
    var that = this;
    //判断不能为空
    const { love_type, lovename, say } = this.data;

    this.setData({
      is_loading: true
    });

    if (lovename !== '' && say !== '') {
      // 对于表白墙来说，名字和心里话都不能为空
      // 向表白墙的集合中 新加一个记录
      console.log('准备更新数据库');
      let database = '';
      database = this.data.love_type === 'real' ? 'real' : 'fake';

      db.collection(database).add({
        data: {
          avatarUrl: database === 'real' ? app.globalData.user_data.avatarUrl : '../../../static/my.png',
          nickName: database === 'real' ? app.globalData.user_data.nickName : '匿名者',
          time: time.formatTime_year_month_day(new Date()),
          lovename,
          say
        }
      })
        .then(res => {
          console.log(res);
          this.setData({
            is_loading: false
          });
          console.log('数据库的集合已更新');
          wx.navigateBack({
            delta: 1
          })

        })

    } else {
      wx.showModal({
        title: `文字内容不能为空`
      });
      this.setData({
        is_loading: false
      });

    }

    //微信绿色内容接口
    // if (!imageCunt && content !== '') {
    //   //图为空
    //   wxGreenCheck.wxTextCheck(content).then(res => {
    //     var fileIDs = [];
    //     that.changeDb(fileIDs, new Date().getTime());
    //   })
    // } else {
    //   const index = new Date().getTime()
    //   that.uploadFile(index)
    // }


  },


  showShare() {

    wx.hideLoading()
    wx.showToast({
      title: '发布成功',
      success: res => {
        app.globalData.switchTime = true
        setTimeout(() => {
          wx.switchTab({
            url: '/pages/course/course',
          })
        }, 500)
      }
    })

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(options);
    this.setData({
      type: options.type,
    })
    // 失物招领 的宿舍区赋值，从失物招领跳进来该页面才需要
    if (options.location) {
      this.setData({
        location_type: options.location
      })
    }
    // 表白墙 的实名贴或匿名贴赋值，从表白墙跳进来该页面才需要
    if (options.love) {
      this.setData({
        love_type: options.love
      })
    }
    console.log(this.data.love_type);

    console.log(app.globalData.user_data);
    this.setData({
      user_data: app.globalData.user_data
    });

    // console.log(new Date().getTime());

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },
  chooseImage() {

    //选择图片
    wx.chooseImage({
      count: 1,
      sizeType: ['compressed'],
      sourceType: ['album'],
      success: (res) => {
        const imageCunt = res.tempFilePaths.length
        console.log(res, imageCunt);
        console.log(imageCunt ? (imageCunt < 1 ? true : false) : true)
        this.setData({
          tempFilePaths: res.tempFilePaths,
          imageCunt
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})